iT邦幫忙

2024 iThome 鐵人賽

DAY 6
1

今天分享攀岩網站後端重構的過程,分享遇到的挑戰與如何解決,以及未來的開發規劃。

重構網站架構:從Firebase到Spring Boot

由於後來想轉往後端,同時也開始學習Java,因此決定將原本使用Firebase BaaS的後端改為使用Java Spring Boot開發,資料庫使用MySQL。這個決定帶來了一連串的挑戰,但同時也為網站提供了更多可以運用的空間與苦難

待開發功能

  • 一般登入與第三方登入 (Google、Line)
  • 個人資料管理 (CRUD)
  • 小人物誌 (CRUD)
  • 文章管理 (CRUD)
  • 攀岩場資訊管理 (CRUD)
  • 日誌記錄功能
  • Swagger文件化
  • 單元測試
  • 網站部署

開發遇到亂流1 Spring Security的意外啟用

問題:引入java-security依賴後,出現了意外的401 Unauthorized錯誤。

解決方法

  • 原來出問題源於java-security依賴
  • 移除不必要的依賴
  • 使用IDE的"Rebuild Module"功能重新加載配置

學習心得:Spring Boot會自動執行依賴中的配置,即使沒有直接引用。在添加新依賴時需要格外小心,確保了解其默認行為。

開發遇到亂流2 中文字符儲存問題

問題:MySQL資料庫無法正確儲存和讀取中文字符。

解決方法

  • 將資料庫字段格式更改為UTF-8
  • 確保資料庫連接字符串中包含正確的字符集設置

學習心得:在處理不同文字語言時,始終確保從資料都使用一致的字符編碼。

開發過程中的參考學習資源

  1. YouTube教學:

  2. GitHub參考項目:

    • spring-boot-react-blog
    • Spring-Boot-Blog-REST-API
    • blog-application-spring-boot-rest-api
  3. 課程資源:

進度更新:

使用者與文章的CRUD完成

經過這些挑戰,網站的使用者和文章的CRUD功能已經順利完成。接下來,會繼續開發小人物誌跟攀岩場CRUD。登入是使用Spring Boot Security,並參考了一些範例專案來實作JWT認證和授權功能,不過有點卡關,持續摸索中。

接下來繼續完成

  1. 小人物誌跟攀岩場CRUD
  2. Google和LINE的第三方登入
  3. SwaggerAPI文檔管理
  4. 前端與後端的串接
  5. 補上單元測試
  6. 日誌記錄功能

這次的後端重構過程雖然充滿挑戰,但也因此更理解Spring Boot框架的用法,與周邊的生態系,期待之後將功能完成。

今天就先這樣拉,希望寫出來之後,可以加速我完成攀岩網站的決心,然後前端也還有不少功能要補上,今年一定要完成,先立個flag。

有關Side Project Taiwan的簡介

Side Project Taiwan 的宗旨是藉由Side Project開發來成就自我,透過持續學習和合作,共同推動技術和專業的發展。我們相信每一個參與者,無論是什麼專業,都能在這個社群中找到屬於自己的成長空間。

歡迎所有對Side Project開發有興趣的人加入我們,可以是有點子來找夥伴,也可以是來尋找有興趣的Side >Project加入,邀請大家一同打造一個充滿活力且有意義的技術社群!

Discord頻道連結:https://sideproj.tw/dc


上一篇
Day 5: 攀岩網站改版紀實:從陽春到功能強化的蛻變
系列文
「如何從零到一:打造你的首個 Side Project」6
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
hsu1fang
iT邦新手 5 級 ‧ 2024-09-07 22:40:42

朝聖 :)

0
阿鵝
iT邦新手 2 級 ‧ 2024-09-08 00:25:10

朝聖 /images/emoticon/emoticon61.gif

0
yale918
iT邦新手 5 級 ‧ 2024-09-08 01:14:53

朝聖/images/emoticon/emoticon58.gif

0
Mao
iT邦新手 1 級 ‧ 2024-09-08 14:31:15

朝聖/images/emoticon/emoticon12.gif

我要留言

立即登入留言